//
//  VisitorView.swift
//  ZMWB
//
//  Created by 朱敏 on 2017/9/22.
//  Copyright © 2017年 朱敏. All rights reserved.
//

import UIKit

//protocol VistorViewDelegate: NSObjectProtocol {
//    //默认情况下协议中的方法是必须实现的
//    func visitorViewDidClickRegisterBtn(visitor: VisitorView)
//    func visitorViewDidClickLoginBtn(visitor: VisitorView)
//}

class VisitorView: UIView {
    
    // 注册按钮
    @IBOutlet weak var registerButton: UIButton!
    
    // 登录按钮
    @IBOutlet weak var loginButton: UIButton!

    
    // 转盘
    @IBOutlet weak var rotationImageView: UIImageView!
    
    // 图标
    @IBOutlet weak var iconImageView: UIImageView!
    
    // 文本标签
    @IBOutlet weak var titleLabel: UILabel!
    
    // MARK: - 外部控制方法
    // 快速创建方法
    class func visitorView() -> VisitorView {
        return Bundle.main.loadNibNamed("VisitorView", owner: nil, options: nil)?.last as! VisitorView
    }
    
//    weak var delegate: VistorViewDelegate?
    
    /*
        设置访客视图上的数据
        imageName:需要显示的图标
        title:需要显示的标题
     
     */
    func setupVisitorInfo(imageName: String?, title: String) {
        
        // 1.设置标题
        titleLabel.text = title
        // 2.判断是否是首页
        guard let name = imageName else {
            // 没有设置图标， 是首页
            startAnimation()
            return
        }
        // 3.设置其他数据
        // 不是首页
        rotationImageView.isHidden = true
        iconImageView.image = UIImage(named: name)
    }
    
    // MARK: - 内部控制方法
    private func startAnimation() {
        // 1.创建动画
        let animation = CABasicAnimation(keyPath: "transform.rotation")
        // 2.设置动画属性
        animation.toValue = 2 * Double.pi
        animation.duration = 5.0
        animation.repeatCount = MAXFLOAT
        
        // 注意：默认情况下只要视图消失，系统就会自动移除动画
        animation.isRemovedOnCompletion = false
        
        // 3.将动画添加到图层上
        rotationImageView.layer.add(animation, forKey: nil)
        
    }
    /*
    @IBAction func registerBtnClick(_ sender: Any) {
        // 和OC不一样，Swift中如果简单的调用代理方法，不用判断代理能否响应
        delegate?.visitorViewDidClickRegisterBtn(visitor: self)
    }
    
    @IBAction func loginBtnClick(_ sender: Any) {
        delegate?.visitorViewDidClickLoginBtn(visitor: self)
    }
    */
    // func ==  OC里的  - 方法
    // class func == OC里的 + 方法

}
